﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Core;
using System.Data.SqlClient;
using Crosland.Automotriz.Entidad;
namespace Crosland.Automotriz.Data.Dao.Linq
{
    public class clsSolicitudAprobacionDAO
    {
        AutomotrizEntities bd = new AutomotrizEntities();
        private readonly AutomotrizEntities ContextoDeObjs = new AutomotrizEntities();
        private readonly DM_CROSLAND_20130417Entities ContextoEntidad = new DM_CROSLAND_20130417Entities();

        public IEnumerable<Object> listarSolicitudPrimer() 
        { 
        
        IEnumerable<Object> listar =new List<Object>();



        try
        {

            var q = from u in bd.V_Usuario
                    from n in bd.V_mae_usuario_nivel
                    where u.ID_USUARIO == n.Id_Usuario
                    where n.num_nivel > 0 
                    where n.num_nivel<2
                    select new
                    {
                        idMae=u.ID_USUARIO,
                        nombres= u.DES_NOMBRE+" "+ u.DES_APELLIDOS,
                        u.DES_EMAIL
                    };


            listar = q.ToList();
        }
        catch
        { }
       return listar;
               
        }

        public string IdUsuarioPrimerNivel(int nivel,string email)
        {


            var p = new object[] { new SqlParameter("@NIVEL", nivel), new SqlParameter("@EMAIL", email) };
            var resultado = ContextoEntidad.ExecuteStoreQuery<V_USUARIO_ID_BUSCAR>("exec USP_IDUSUARIO_APROBADOR @NIVEL, @EMAIL", p).Single().ID_USUARIO;
            return resultado;

      

        }



        public String ObtieneCorreoUsuario(string strIdUsuario)
        {
            try
            {
                var queryText = String.Format("SELECT tsu.DES_EMAIL FROM T_SEG_USUARIO tsu WHERE tsu.ID_USUARIO='{0}'", strIdUsuario);
                var lisr = ContextoDeObjs.ExecuteStoreQuery<String>(queryText).ToList();
                return lisr.FirstOrDefault();
            }
            catch (Exception)
            {
                return "";
            }
        }


        public bool UpdateAprobacion(string tipo,int nroPronostico,string usuario)
        {
            try
            {
                ContextoDeObjs.ExecuteStoreCommand("exec USP_UPDATE_APROBACION_IMP @TIPO={0}, @NRO_IMPORTACION={1},@ID_USUARIO={2}",tipo,nroPronostico,usuario);
                return true;
            }
            catch (Exception)
            {

                return false;
            }

        }

        public IEnumerable<Object> listarSolicitudSegundo()
        {

            IEnumerable<Object> listar = new List<Object>();



            try
            {

                var q = from u in bd.V_Usuario
                        from n in bd.V_mae_usuario_nivel
                        where u.ID_USUARIO == n.Id_Usuario
                        where n.num_nivel > 1
                        where n.num_nivel<3
                        select new
                        {

                            idMae = u.ID_USUARIO,
                            nombres = u.DES_NOMBRE + " " + u.DES_APELLIDOS,
                            u.DES_EMAIL
                        };


                listar = q.ToList();
            }
            catch
            { }
            return listar;

        }


        public List<TD_PRONOSTICO_ESTADO> listarEstado()
        {

            List<TD_PRONOSTICO_ESTADO> lista = new List<TD_PRONOSTICO_ESTADO>();

            try
            {

                var q = from e in bd.TD_PRONOSTICO_ESTADO
                        select e;


                lista = q.ToList();
            }
            catch 
            {
        
            }

            return lista;
        
        
        }
        



    }
}
